package com.alander.nexusgo.user.service;

import com.alander.nexusgo.common.model.dto.CheckinDTO;
import com.alander.nexusgo.common.model.vo.CheckinVO;
import com.alander.nexusgo.user.model.entity.UserCheckins;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author alander
*/
public interface UserCheckinsService extends IService<UserCheckins> {
    /**
     * 用户打卡
     *
     * @param checkinDTO 打卡信息
     * @return 打卡结果
     */
    CheckinVO checkin(CheckinDTO checkinDTO);

    /**
     * 获取用户打卡记录列表
     *
     * @param userId 用户ID
     * @return 打卡记录列表
     */
    List<CheckinVO> listUserCheckins(Long userId);

    /**
     * 获取打卡详情
     *
     * @param checkinId 打卡记录ID
     * @return 打卡详情
     */
    CheckinVO getCheckinDetail(Long checkinId);

    /**
     * 更新打卡信息
     *
     * @param checkinId  打卡记录ID
     * @param checkinDTO 打卡信息
     * @return 更新后的打卡信息
     */
    CheckinVO updateCheckin(Long checkinId, CheckinDTO checkinDTO);

    /**
     * 删除打卡记录
     *
     * @param checkinId 打卡记录ID
     * @return 删除结果
     */
    boolean deleteCheckin(Long checkinId);
}
